PowerShellを使ったGoogle SheetsへのCSVの保存
PowerShell側
ConvertTo-Csvの出力は文字列の配列なのでOut-Stringにより文字列にする。
Out-Stringの出力はUTF-16なのでUTF8.GetBytesによりUTF-8にする。
code:sample.ps1
$identity = "メールアドレス"
$url = "https://script.google.com/macros/s/デプロイ時に割り当てられたID/exec"
$folders = Get-MailboxFolder -Recurse -Identity $identity
$csv = $folders |ConvertTo-Csv -NoTypeInformation | Out-String
$utf8Body = System.Text.Encoding::UTF8.GetBytes($csv)
Invoke-WebRequest -Uri $url -Method Post -Body $utf8Body
Google Apps Script側
Google Sheetsをコンテナにしたスクリプトを想定している。
シートが一枚しかないと想定している。
code:example.gs.js
function doPost(e) {
try {
// Parse the CSV text from the request payload
var csvText = e.postData.contents;
var data = Utilities.parseCsv(csvText);
// Access the desired sheet
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Write the data to the sheet
data.forEach(function (row, index) {
sheet.getRange(index + 1, 1, 1, row.length).setValues(row);
});
return ContentService.createTextOutput(csvText);
} catch (e) {
return ContentService.createTextOutput(csvText);
}
}
データ中継用テーブルの構造
どんなシートがあるべきか。
current
log
metadata